#include "LectorXml.h"


int cLectorXml::LeerArchivoXmlEscenario(deque<sPieza> &vectorAnimacionSprites,char nombre[80])
{
	TiXmlDocument     *xmlDoc = new TiXmlDocument(nombre);
	TiXmlElement *raiz = 0;
	TiXmlElement *animacion;
	sPieza enemigo;

	if (!xmlDoc->LoadFile())
		return 0;

	raiz = xmlDoc->FirstChildElement("escenario");

	if (!raiz)
		{ xmlDoc->Clear();delete xmlDoc; return 0;}

	for(animacion = raiz->FirstChildElement  ("pieza");
		animacion;
		animacion=animacion->NextSiblingElement ())
	{
			enemigo.nombre =animacion->Attribute ("nombre");
			enemigo.posicionx =atoi(animacion->Attribute ("posicionx"));
			enemigo.posiciony =atoi(animacion->Attribute ("posiciony"));
			vectorAnimacionSprites.push_back (enemigo);
	}

return 1;
}


int cLectorXml::LeerArchivoXmlPersonaje(deque<sAnimacionSprites> &vectorAnimacionSprites,char nombre[80])
{

	TiXmlDocument     *xmlDoc = new TiXmlDocument(nombre);
	TiXmlElement *raiz = 0;
	TiXmlElement * animacion;
	TiXmlElement *cuadroanimacion;
	TiXmlElement *colisiones_de_ataque;
	TiXmlElement *colisiones_de_defensa;
	TiXmlElement *colision;
	sAnimacionSprites Animacion_Sprites;
	sCuadroAnimacion Cuadro_Animacion;


if (!xmlDoc->LoadFile())return 0;

raiz = xmlDoc->FirstChildElement("animaciones");

if (!raiz){ xmlDoc->Clear();delete xmlDoc; return 0;}






for(animacion = raiz->FirstChildElement  ("animacion");
	animacion;
	animacion=animacion->NextSiblingElement ())
{

Animacion_Sprites.numero_de_animacion = atoi( animacion->Attribute("numero_de_animacion"));
//Animacion_Sprites.nombre_animacion  = animacion->Attribute ("nombre_animacion") ; 





		////////////////////////////////////////////////////////////////////////////////////
		//////////////////////////////////////////cuadroanimacion	
		////////////////////////////////////////////////////////////////////////////////////

		

			for(cuadroanimacion= animacion->FirstChildElement ("cuadroanimacion");
				cuadroanimacion;
				cuadroanimacion = cuadroanimacion->NextSiblingElement())
			{


		Cuadro_Animacion.numero_de_cuadro  =atoi(cuadroanimacion->Attribute("numero_de_cuadro"));
		Cuadro_Animacion.grupo_imagen  =atoi(cuadroanimacion->Attribute("grupo_imagen"));

		Cuadro_Animacion.no_imagen  =atoi(cuadroanimacion->Attribute("no_imagen"));
		Cuadro_Animacion.posicion_x  =atoi(cuadroanimacion->Attribute("posicion_x"));

		Cuadro_Animacion.posicion_y  =atoi( cuadroanimacion->Attribute("posicion_y"));
		Cuadro_Animacion.tiempo  =atoi(cuadroanimacion->Attribute("tiempo"));

		Cuadro_Animacion.orientacion_h  =atoi( cuadroanimacion->Attribute("orientacion_h"));
		Cuadro_Animacion.orientacion_v  =atoi( cuadroanimacion->Attribute("orientacion_v"));

		Cuadro_Animacion.inicia_ciclo  =atoi( cuadroanimacion->Attribute("inicia_ciclo"));
		
		


		////////////////////////////////////////////////////////////////////////////////////
		//////////////////////////////////////////colisiones	
		////////////////////////////////////////////////////////////////////////////////////
						

						colisiones_de_ataque= cuadroanimacion->FirstChildElement ("colisiones_de_ataque");
						if(colisiones_de_ataque)
						{
							printf("**********************colisiones de ataque**********************\n");
							printf("numero de colisiones-> %s\n", colisiones_de_ataque->Attribute("numero_de_colisiones"));
							colision = colisiones_de_ataque->ToElement ()->FirstChildElement ();

							while(colision)

							{

						printf("x0------------------> %s\n", colision->Attribute("x0"));
						printf("y0------------------> %s\n", colision->Attribute("y0"));
						printf("x1------------------> %s\n", colision->Attribute("x1"));
						printf("x1------------------> %s\n", colision->Attribute("y1"));
								 colision = colision->NextSiblingElement();
							}
						}



							
						

						colisiones_de_defensa=cuadroanimacion->FirstChildElement ("colisiones_de_defensa");	
						if(colisiones_de_defensa)
						{	
							printf("**********************colisiones de defensa**********************\n");	
							printf("numero de colisiones-> %s\n", colisiones_de_defensa->Attribute("numero_de_colisiones"));							
							colision = colisiones_de_defensa->FirstChildElement ();

							while(colision)

							{

						printf("x0------------------> %s\n", colision->Attribute("x0"));
						printf("y0------------------> %s\n", colision->Attribute("y0"));
						printf("x1------------------> %s\n", colision->Attribute("x1"));
						printf("x1------------------> %s\n", colision->Attribute("y1"));
								 colision = colision->NextSiblingElement();
							}

						}

		////////////////////////////////////////////////////////////////////////////////////
		//////////////////////////////////////////colisiones	
		////////////////////////////////////////////////////////////////////////////////////
		Animacion_Sprites.vectorCuadrosAnimacion.push_back (Cuadro_Animacion);

		}

vectorAnimacionSprites.push_back (Animacion_Sprites);
Animacion_Sprites.vectorCuadrosAnimacion .clear ();
		////////////////////////////////////////////////////////////////////////////////////
		//////////////////////////////////////////cuadroanimacion	
		////////////////////////////////////////////////////////////////////////////////////
}


	xmlDoc->Clear();
	delete xmlDoc;
	return 1;


}